diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst
index 375bb46..e5f6824 100644
--- a/user_guide_src/source/libraries/form_validation.rst
+++ b/user_guide_src/source/libraries/form_validation.rst
@@ -838,95 +838,35 @@
 The following is a list of all the native rules that are available to
 use:
 
-Rule
-Parameter
-Description
-Example
-**required**
-No
-Returns FALSE if the form element is empty.
-**matches**
-Yes
-Returns FALSE if the form element does not match the one in the
-parameter.
-matches[form_item]
-**is_unique**
-Yes
-Returns FALSE if the form element is not unique to the table and field
-name in the parameter.
-is_unique[table.field]
-**min_length**
-Yes
-Returns FALSE if the form element is shorter then the parameter value.
-min_length[6]
-**max_length**
-Yes
-Returns FALSE if the form element is longer then the parameter value.
-max_length[12]
-**exact_length**
-Yes
-Returns FALSE if the form element is not exactly the parameter value.
-exact_length[8]
-**greater_than**
-Yes
-Returns FALSE if the form element is less than the parameter value or
-not numeric.
-greater_than[8]
-**less_than**
-Yes
-Returns FALSE if the form element is greater than the parameter value or
-not numeric.
-less_than[8]
-**alpha**
-No
-Returns FALSE if the form element contains anything other than
-alphabetical characters.
-**alpha_numeric**
-No
-Returns FALSE if the form element contains anything other than
-alpha-numeric characters.
-**alpha_dash**
-No
-Returns FALSE if the form element contains anything other than
-alpha-numeric characters, underscores or dashes.
-**numeric**
-No
-Returns FALSE if the form element contains anything other than numeric
-characters.
-**integer**
-No
-Returns FALSE if the form element contains anything other than an
-integer.
-**decimal**
-Yes
-Returns FALSE if the form element is not exactly the parameter value.
-**is_natural**
-No
-Returns FALSE if the form element contains anything other than a natural
-number: 0, 1, 2, 3, etc.
-**is_natural_no_zero**
-No
-Returns FALSE if the form element contains anything other than a natural
-number, but not zero: 1, 2, 3, etc.
-**is_unique**
-Yes
-Returns FALSE if the form element is not unique in a database table.
-is_unique[table.field]
-**valid_email**
-No
-Returns FALSE if the form element does not contain a valid email
-address.
-**valid_emails**
-No
-Returns FALSE if any value provided in a comma separated list is not a
-valid email.
-**valid_ip**
-No
-Returns FALSE if the supplied IP is not valid.
-**valid_base64**
-No
-Returns FALSE if the supplied string contains anything other than valid
-Base64 characters.
+.. table::
+======================= ========== ============================================================================================= =======================
+Rule                    Parameter  Description                                                                                   Example
+======================= ========== ============================================================================================= =======================
+**required**            No         Returns FALSE if the form element is empty.                                                                          
+**matches**             Yes        Returns FALSE if the form element does not match the one in the parameter.                    matches[form_item]     
+**is_unique**           Yes        Returns FALSE if the form element is not unique to the                                        is_unique[table.field] 
+                                   table and field name in the parameter. is_unique[table.field]                                                        
+**max_length**          Yes        Returns FALSE if the form element is longer then the parameter value.                         max_length[12]         
+**exact_length**        Yes        Returns FALSE if the form element is not exactly the parameter value.                         exact_length[8]        
+**greater_than**        Yes        Returns FALSE if the form element is less than the parameter value or not numeric.            greater_than[8]        
+**less_than**           Yes        Returns FALSE if the form element is greater than the parameter value or not numeric.         less_than[8]           
+**alpha**               No         Returns FALSE if the form element contains anything other than alphabetical characters.                              
+**alpha_numeric**       No         Returns FALSE if the form element contains anything other than alpha-numeric characters.                             
+**alpha_dash**          No         Returns FALSE if the form element contains anything other than alpha-numeric characters,                             
+                                   underscores or dashes.                                                                                               
+**numeric**             No         Returns FALSE if the form element contains anything other than numeric characters.                                   
+**integer**             No         Returns FALSE if the form element contains anything other than an integer.                                           
+**decimal**             Yes        Returns FALSE if the form element is not exactly the parameter value.                                                
+**is_natural**          No         Returns FALSE if the form element contains anything other than a natural number:
+                                   0, 1, 2, 3, etc.
+**is_natural_no_zero**  No         Returns FALSE if the form element contains anything other than a natural
+                                   number, but not zero: 1, 2, 3, etc.
+**is_unique**           Yes        Returns FALSE if the form element is not unique in a database table.                          is_unique[table.field] 
+**valid_email**         No         Returns FALSE if the form element does not contain a valid email address.
+**valid_emails**        No         Returns FALSE if any value provided in a comma separated list is not a valid email.
+**valid_ip**            No         Returns FALSE if the supplied IP is not valid.
+**valid_base64**        No         Returns FALSE if the supplied string contains anything other than valid Base64 characters.
+======================= ========== ============================================================================================= =======================
 
 .. note:: These rules can also be called as discrete functions. For
 	example::
